// 包声明：将Tortoise类放在com.itheima.polymorphsm1包下，方便组织和管理代码
package com.itheima.polymorphsm1;

// 定义一个公共的Tortoise类，这个类继承自Animal类
// extends关键字表示继承关系，Tortoise是子类，Animal是父类
// 子类会继承父类的所有非私有成员（变量和方法）
public class Tortoise extends Animal{
    // 定义一个字符串类型的实例变量name，初始值为"乌龟"
    // 这个变量与父类Animal中的name变量同名，会覆盖父类的变量
    // 但在多态情况下，通过父类引用访问时仍会使用父类的name变量
    String name = "乌龟";
    
    // @Override注解：表示下面的run方法是重写（覆盖）父类Animal中的run方法
    // 这个注解可以帮助编译器检查是否正确重写了父类方法
    @Override
    // 重写父类Animal中的run方法
    // 方法签名必须与父类完全相同（返回类型、方法名、参数列表）
    // 访问权限不能低于父类的访问权限（父类是public，子类也必须是public）
    public void run() {
        // 打印输出字符串"🐢跑的贼慢~~~"
        // 这是Tortoise类特有的run方法实现，覆盖了父类的实现
        // 在多态情况下，通过父类引用调用此方法时，会执行子类的这个实现
        System.out.println("🐢跑的贼慢~~~");
    }
    // run方法结束
}
// Tortoise类结束
